home *** CD-ROM | disk | FTP | other *** search
/ Item MB Quick & Easy 2.0 / Item MB Quick & Easy 2.0.iso / mbfacad / 0041958.lsp < prev    next >
Text File  |  1998-03-15  |  23KB  |  554 lines

  1. ;=============419.58 MULTIBLOCK 6 PA
  2.  
  3. ; Fⁿr diese  programm erstellt Thomas noch Bl÷cke, dmait man entsprechend der Klemmmultibll÷cke
  4. ; verfahren kann. 22.12.97 Bernd
  5.  
  6.  
  7. (defun C:41958SV ( / X P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 Wi Wix WH WV
  8.                      E1 SS1 BName)
  9.    (EAITDBL "0041958")
  10.    (princ (strcat "\n\n" EAITbez1))
  11.    (EAITvari)
  12.    (EAITvars)
  13.    (setq X nil)
  14.    (while (not X)
  15.       (if (not EAITebl)(setq EAITebl 9))
  16.       (EAITmsg "mb_mld12" "\n" "013" "<")(princ EAITebl)(princ "> : ") ;Einbaulage X (5; 10; 15; 20) < EAITebl >:
  17.       (initget 6)
  18.       (setq X (getint))
  19.       (cond ((= X nil)(setq X EAITebl))
  20.             ((= X   6)(princ))
  21.             ((= X   9)(princ))
  22.             ((= X  12)(princ))
  23.             ((= X  15)(princ))
  24.             (T        (setq X nil))
  25.      )
  26.    )
  27.    (setq EAITebl X)
  28.    (setvar "ORTHOMODE" 1)
  29.    (EAITbpt EAITofpun 8 nil)
  30.    (setq P1 (getpoint))
  31.    (if (= P1 nil)(setq P1 (EAITrpt)))
  32.    (setvar "ORTHOMODE" 0)
  33.    (setvar "OSMODE" 0)
  34.    (initget 1)
  35.    (EAITmsg "mb_mld10" nil "008" nil)           ;Konstruktionsrichtung
  36.    (setq Wi (getangle P1)
  37.          Wix (EAITbig Wi))
  38.    (cond ((and (>= Wix   0)(< Wix  90))(setq WH   0 WV  90 Wix 0))
  39.          ((and (>= Wix  90)(< Wix 180))(setq WH 180 WV  90 Wix 180))
  40.          ((and (>= Wix 180)(< Wix 270))(setq WH 180 WV 270 Wix 180))
  41.          (T                            (setq WH   0 WV 270 Wix 0))
  42.    )
  43.    (cond ((= X 6)(setq P2 (polar P1 (EAITgib WV) 5)
  44.                        P3 (polar P2 (EAITgib WH) 23.5)
  45.                        P4 (polar P3 (EAITgib (+ WV 180)) 25)
  46.                        P5 (polar P4 (EAITgib (+ WH 180)) 23.5)
  47.                        P6 (polar P5 (EAITgib WV) 5)
  48.                        P7 (polar P6 (EAITgib WH) 13.5)
  49.                        P8 (polar P7 (EAITgib (+ WV 180)) 1)
  50.                        P9 (polar P8 (EAITgib WH) 6)
  51.                        P10 (polar P9 (EAITgib WV) 1)
  52.                        P11 (polar P10 (EAITgib WH) 4) ))
  53.          ((= X 9)(setq P2 (polar P1 (EAITgib WV) 10)
  54.                        P3 (polar P2 (EAITgib WH) 23.5)
  55.                        P4 (polar P3 (EAITgib (+ WV 180)) 25)
  56.                        P5 (polar P4 (EAITgib (+ WH 180)) 23.5)
  57.                        P6 (polar P1 (EAITgib WV) 5)
  58.                        P7 (polar P6 (EAITgib WH) 13.5)
  59.                        P8 (polar P7 (EAITgib WV) 1)
  60.                        P9 (polar P8 (EAITgib WH) 6)
  61.                        P10 (polar P9 (EAITgib (+ WV 180)) 1)
  62.                        P11 (polar P10 (EAITgib WH) 4) ))
  63.         ((= X 12)(setq P2 (polar P1 (EAITgib WV) 15)
  64.                        P3 (polar P2 (EAITgib WH) 23.5)
  65.                        P4 (polar P3 (EAITgib (+ WV 180)) 25)
  66.                        P5 (polar P4 (EAITgib (+ WH 180)) 23.5)
  67.                        P6 (polar P5 (EAITgib WV) 5)
  68.                        P7 (polar P6 (EAITgib WH) 13.5)
  69.                        P8 (polar P7 (EAITgib (+ WV 180)) 1)
  70.                        P9 (polar P8 (EAITgib WH) 6)
  71.                        P10 (polar P9 (EAITgib WV) 1)
  72.                        P11 (polar P10 (EAITgib WH) 4) ))
  73.         (T       (setq P2 (polar P1 (EAITgib WV) 20)
  74.                        P3 (polar P2 (EAITgib WH) 23.5)
  75.                        P4 (polar P3 (EAITgib (+ WV 180)) 25)
  76.                        P5 (polar P4 (EAITgib (+ WH 180)) 23.5)
  77.                        P6 (polar P1 (EAITgib WV) 15)
  78.                        P7 (polar P6 (EAITgib WH) 13.5)
  79.                        P8 (polar P7 (EAITgib WV) 1)
  80.                        P9 (polar P8 (EAITgib WH) 6)
  81.                        P10 (polar P9 (EAITgib (+ WV 180)) 1)
  82.                        P11 (polar P10 (EAITgib WH) 4) ))
  83.    )
  84.    (command EAITege (strcat EAITpfn "41958s1") P1 "" "" (+ WH 180))
  85.    (setq E1 (entlast))
  86.    (command EAITlay EAITlse "EAIT50" ""
  87.             EAITlin P2 P3 P4 P5 P2 ""
  88.             EAITlin P6 P11 ""
  89.             EAITlin P10 P9 P8 P7 ""
  90.             EAITlay EAITlse "EAITstp" ""
  91.             EAITlin (polar (polar P2 (EAITgib WH) 10) (EAITgib WV) 5) (polar (polar P5 (EAITgib WH) 10) (EAITgib (+ WV 180)) 5) "" )
  92.    (setq SS1 (EAITSS E1))
  93.    (setq BName (EAITbnr))
  94.    (command EAITblo BName P1 SS1 ""
  95.             EAITege BName P1 "" "" "")
  96.  
  97.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib Wix) 2.5) "" "" (EAITbig (EAITbw))
  98.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  99.    )
  100.  
  101.    (EAITvarz2)
  102.    (princ)
  103. );defun SV
  104.  
  105.  
  106.  
  107.  
  108.  
  109. (defun C:41958SH ( / X P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 Wi Wix WH WV
  110.                      E1 SS1 BName )
  111.    (EAITDBL "0041958")
  112.    (princ (strcat "\n\n" EAITbez1))
  113.    (EAITvari)
  114.    (EAITvars)
  115.    (setq X nil)
  116.    (while (not X)
  117.       (if (not EAITebl)(setq EAITebl 9))
  118.       (EAITmsg "mb_mld12" "\n" "013" "<")(princ EAITebl)(princ "> : ") ;Einbaulage X (5; 10; 15; 20) < EAITebl >:
  119.       (initget 6)
  120.       (setq X (getint))
  121.       (cond ((= X nil)(setq X EAITebl))
  122.             ((= X   6)(princ))
  123.             ((= X   9)(princ))
  124.             ((= X  12)(princ))
  125.             ((= X  15)(princ))
  126.             (T        (setq X nil))
  127.      )
  128.    )
  129.    (setq EAITebl X)
  130.    (setvar "ORTHOMODE" 1)
  131.    (EAITbpt EAITofpun 8 nil)
  132.    (setq P1 (getpoint))
  133.    (if (= P1 nil)(setq P1 (EAITrpt)))
  134.    (setvar "ORTHOMODE" 0)
  135.    (setvar "OSMODE" 0)
  136.    (initget 1)
  137.    (EAITmsg "mb_mld10" nil "008" nil)           ;Konstruktionsrichtung
  138.    (setq Wi (getangle P1)
  139.          Wix (EAITbig Wi))
  140.    (cond ((and (>= Wix   0)(< Wix  90))(setq WH   0 WV  90 Wix 90))
  141.          ((and (>= Wix  90)(< Wix 180))(setq WH 180 WV  90 Wix 90))
  142.          ((and (>= Wix 180)(< Wix 270))(setq WH 180 WV 270 Wix 270))
  143.          (T                            (setq WH   0 WV 270 Wix 270))
  144.    )
  145.    (cond ((= X 6)(setq P2 (polar P1 (EAITgib WH) 5)
  146.                        P3 (polar P2 (EAITgib WV) 23.5)
  147.                        P4 (polar P3 (EAITgib (+ WH 180)) 25)
  148.                        P5 (polar P4 (EAITgib (+ WV 180)) 23.5)
  149.                        P6 (polar P5 (EAITgib WH) 5)
  150.                        P7 (polar P6 (EAITgib WV) 13.5)
  151.                        P8 (polar P7 (EAITgib (+ WH 180)) 1)
  152.                        P9 (polar P8 (EAITgib WV) 6)
  153.                        P10 (polar P9 (EAITgib WH) 1)
  154.                        P11 (polar P10 (EAITgib WV) 4) ))
  155.         ((= X 9)(setq P2 (polar P1 (EAITgib WH) 10)
  156.                        P3 (polar P2 (EAITgib WV) 23.5)
  157.                        P4 (polar P3 (EAITgib (+ WH 180)) 25)
  158.                        P5 (polar P4 (EAITgib (+ WV 180)) 23.5)
  159.                        P6 (polar P1 (EAITgib WH) 5)
  160.                        P7 (polar P6 (EAITgib WV) 13.5)
  161.                        P8 (polar P7 (EAITgib WH) 1)
  162.                        P9 (polar P8 (EAITgib WV) 6)
  163.                        P10 (polar P9 (EAITgib (+ WH 180)) 1)
  164.                        P11 (polar P10 (EAITgib WV) 4) ))
  165.         ((= X 12)(setq P2 (polar P1 (EAITgib WH) 15)
  166.                        P3 (polar P2 (EAITgib WV) 23.5)
  167.                        P4 (polar P3 (EAITgib (+ WH 180)) 25)
  168.                        P5 (polar P4 (EAITgib (+ WV 180)) 23.5)
  169.                        P6 (polar P5 (EAITgib WH) 5)
  170.                        P7 (polar P6 (EAITgib WV) 13.5)
  171.                        P8 (polar P7 (EAITgib (+ WH 180)) 1)
  172.                        P9 (polar P8 (EAITgib WV) 6)
  173.                        P10 (polar P9 (EAITgib WH) 1)
  174.                        P11 (polar P10 (EAITgib WV) 4) ))
  175.         (T       (setq P2 (polar P1 (EAITgib WH) 20)
  176.                        P3 (polar P2 (EAITgib WV) 23.5)
  177.                        P4 (polar P3 (EAITgib (+ WH 180)) 25)
  178.                        P5 (polar P4 (EAITgib (+ WV 180)) 23.5)
  179.                        P6 (polar P1 (EAITgib WH) 15)
  180.                        P7 (polar P6 (EAITgib WV) 13.5)
  181.                        P8 (polar P7 (EAITgib WH) 1)
  182.                        P9 (polar P8 (EAITgib WV) 6)
  183.                        P10 (polar P9 (EAITgib (+ WH 180)) 1)
  184.                        P11 (polar P10 (EAITgib WV) 4) ))
  185.    )
  186.    (command EAITege (strcat EAITpfn "41958s1") P1 "" "" (+ WV 180))
  187.    (setq E1 (entlast))
  188.    (command EAITlay EAITlse "EAIT50" ""
  189.             EAITlin P2 P3 P4 P5 P2 ""
  190.             EAITlin P6 P11 ""
  191.             EAITlin P10 P9 P8 P7 ""
  192.             EAITlay EAITlse "EAITstp" ""
  193.             EAITlin (polar (polar P2 (EAITgib WV) 10) (EAITgib WH) 5) (polar (polar P5 (EAITgib WV) 10) (EAITgib (+ WH 180)) 5) "" )
  194.    (setq SS1 (EAITSS E1))
  195.    (setq BName (EAITbnr))
  196.    (command EAITblo BName P1 SS1 ""
  197.             EAITege BName P1 "" "" "")
  198.  
  199.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib Wix) 2.5) "" "" (+ 90 (EAITbig (EAITbw)))
  200.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  201.    )
  202.  
  203.    (EAITvarz2)
  204.    (princ)
  205. );defun SH
  206.  
  207.  
  208.  
  209. (defun C:41958V1 (/ X NL P0 P1 P2 P3 P4 P5 P6 P7 P8 P10 P11 P12 P13
  210.                     WH WV  E1 SS1 BName)
  211.    (EAITDBL "0041958")
  212.    (princ (strcat "\n\n" EAITbez1))
  213.    (EAITvari)
  214.    (EAITvars)
  215.  
  216.    ;Einbaulage
  217.    (setq X nil)
  218.    (while (not X)
  219.       (if (not EAITebl)(setq EAITebl 10))
  220.       (EAITmsg "mb_mld12" "\n" "013" "<")(princ EAITebl)(princ "> : ") ;Einbaulage X (5; 10; 15; 20) < EAITebl >:
  221.       (initget 6)
  222.       (setq X (getint))
  223.       (cond ((= X nil)(setq X EAITebl))
  224.             ((= X   5)(princ))
  225.             ((= X  10)(princ))
  226.             ((= X  15)(princ))
  227.             ((= X  20)(princ))
  228.             (T        (setq X nil))
  229.      )
  230.    )
  231.    (setq EAITebl X)
  232.  
  233.    ;Lage
  234.    (setvar "ORTHOMODE" 0)
  235.    (setvar "OSMODE" 32)
  236.    (EAITmsg "mb_mld15" "\n" "007" " :")  ;1. Nutlinie:
  237.    (setq NL (entsel " ")
  238.          P0 (osnap (cadr NL) EAITofnaec))
  239.    (EAITmsg "mb_mld15" "\n" "008" nil)(EAITmsg "mb_mld10" " " "015" " : ")(princ "<")(princ EAITofsch)(princ "> ")
  240.                                          ; Punkt auf 2. Nutlinie (Return = relativ) : <SCH> 
  241.    (setq P1 (getpoint P0))
  242.    (if (= P1 nil)(setq P1 (EAITrpt)))
  243.    (setvar "ORTHOMODE" 0)
  244.    (setvar "OSMODE" 0)
  245.    (setq P10 (osnap P0 EAITofend)
  246.          P12 (osnap P0 EAITofmit)
  247.          WH  (angle P10 P12)
  248.          WV  (+ WH (/ Pi 2))
  249.          P13 (inters P1 (polar P1 WV 4) P10 P12 nil)
  250.          P1  (mapcar '/ (mapcar '+ P13 P1) '(2 2 2))
  251.          WV  (angle P1 P13) 
  252.          WH  (+ WV (/ Pi 2))
  253.          WH  (EAITbig WH)
  254.          WV  (EAITbig WV) 
  255.    )
  256.  
  257.   (if (/= (cdr (assoc 2 (entget (car NL)))) nil) (command EAITurs P0) )
  258.   (command EAITzom EAITzof  (mapcar '- P1 '(50 50 0)) (mapcar '+ P1 '(100 100 0)))
  259.   (if (/= (ssget (polar P1 (EAITgib WV)  4)) nil)
  260.         (command EAITbru (polar P1 (EAITgib WV) 4) EAITbre (polar (polar P1 (EAITgib WH) 10) (EAITgib WV)  4) (polar (polar P1 (EAITgib WH) -10) (EAITgib WV)  4))
  261.   )       
  262.   (if (/= (ssget (polar P1 (EAITgib WV) -4)) nil)
  263.         (command EAITbru (polar P1 (EAITgib WV) -4) EAITbre (polar (polar P1 (EAITgib WH) 10) (EAITgib WV) -4) (polar (polar P1 (EAITgib WH) -10) (EAITgib WV) -4))
  264.   )
  265.   (cond ((= X 5)(setq P3 (polar (polar P1 (EAITgib WV) 5) (EAITgib WH) -10)
  266.                       P4 (polar P3 (EAITgib WH) 20)
  267.                       P5 (polar P4 (EAITgib (+ WV 180)) 25)
  268.                       P6 (polar P5 (EAITgib (+ WH 180)) 20)
  269.                       P7 (polar P6 (EAITgib WV) 5)
  270.                       P8 (polar P7 (EAITgib WH) 20) ))
  271.        ((= X 10)(setq P3 (polar (polar P1 (EAITgib WV) 10) (EAITgib WH) -10)
  272.                       P4 (polar P3 (EAITgib WH) 20)
  273.                       P5 (polar P4 (EAITgib (+ WV 180)) 25)
  274.                       P6 (polar P5 (EAITgib (+ WH 180)) 20)
  275.                       P7 (polar P3 (EAITgib WV) -5)
  276.                       P8 (polar P7 (EAITgib WH) 20) ))
  277.        ((= X 15)(setq P3 (polar (polar P1 (EAITgib WV) 15) (EAITgib WH) -10)
  278.                       P4 (polar P3 (EAITgib WH) 20)
  279.                       P5 (polar P4 (EAITgib (+ WV 180)) 25)
  280.                       P6 (polar P5 (EAITgib (+ WH 180)) 20)
  281.                       P7 (polar P6 (EAITgib WV) 5)
  282.                       P8 (polar P7 (EAITgib WH) 20) ))
  283.        (T       (setq P3 (polar (polar P1 (EAITgib WV) 20) (EAITgib WH) -10)
  284.                       P4 (polar P3 (EAITgib WH) 20)
  285.                       P5 (polar P4 (EAITgib (+ WV 180)) 25)
  286.                       P6 (polar P5 (EAITgib (+ WH 180)) 20)
  287.                       P7 (polar P3 (EAITgib WV) -5)
  288.                       P8 (polar P7 (EAITgib WH) 20) ))
  289.   )
  290.   (command EAITlay EAITlse "EAIT50" ""
  291.            EAITlin P3 P4 "")
  292.   (setq E1 (entlast))
  293.   (command EAITlin P4 P5 P6 P3 ""
  294.            EAITlin P7 P8 ""
  295.            EAITlay EAITlse "EAITstp" ""
  296.            EAITlin (polar (polar P3 (EAITgib WH) 10) (EAITgib WV) 5) (polar (polar P6 (EAITgib WH) 10) (EAITgib (+ WV 180)) 5) ""
  297.   )
  298.    (setq SS1 (EAITSS E1))
  299.   (setq BName (EAITbnr))
  300.   (command EAITblo BName P1 SS1 ""
  301.            EAITege BName P1 "" "" ""
  302.            EAITzom EAITzov )
  303.  
  304.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib WH) 2.5) "" "" WH
  305.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  306.    )
  307.  
  308.    (EAITvarz2)
  309.    (princ)
  310. );defun V1
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317. (defun C:41958V2 (/ X L NL P P0 P1 P2 P3 P4 P5 P6 P7 P8 P10 P11 P12 P13 P20 P21
  318.                    n LGes WH WV nx E1 SS1 BName)
  319.    (EAITDBL "0041958")
  320.    (princ (strcat "\n\n" EAITbez1))
  321.    (EAITvari)
  322.    (EAITvars)
  323.  
  324.    ;Einbaulage
  325.    (setq X nil)
  326.    (while (not X)
  327.       (if (not EAITebl)(setq EAITebl 10))
  328.       (EAITmsg "mb_mld12" "\n" "013" "<")(princ EAITebl)(princ "> : ") ;Einbaulage X (5; 10; 15; 20) < EAITebl >:
  329.       (initget 6)
  330.       (setq X (getint))
  331.       (cond ((= X nil)(setq X EAITebl))
  332.             ((= X   5)(princ))
  333.             ((= X  10)(princ))
  334.             ((= X  15)(princ))
  335.             ((= X  20)(princ))
  336.             (T        (setq X nil))
  337.      )
  338.    )
  339.    (setq EAITebl X)
  340.  
  341.    ;Lage + Anzahl
  342.    (setq L nil)
  343.    (while (not L)
  344.        (setvar "ORTHOMODE" 0)
  345.        (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "017"))  ;  1. Punkt:
  346.        (setq P20 (getpoint))
  347.        (if (= P20 nil)(setq P20 (EAITrpt)))
  348.        (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "018"))  ;  2. Punkt:
  349.        (setq P21 (getpoint P20))
  350.        (if (= P21 nil)(setq P21 (EAITrpt)))
  351.        (setvar "ORTHOMODE" 0)
  352.        (setvar "OSMODE" 512)
  353.        (EAITmsg "mb_mld12" "\n" "015" ": ")  ;1. Nutlinie:
  354.        (setq NL (entsel " ")
  355.              P0 (cadr NL))
  356.        (setvar "OSMODE" 128)
  357.        (EAITmsg "mb_mld12" "\n" "016" ": ")  ;2. Nutlinie:
  358.        (setq P1 (getpoint P0))
  359.        (setvar "ORTHOMODE" 0)
  360.        (setvar "OSMODE" 0)
  361.        (setvar "APERTURE" 4)
  362.        (setq P10 (osnap P0 EAITofend)
  363.              P11 (osnap P1 EAITofend)
  364.              P12 (osnap P0 EAITofmit)
  365.              P13 (osnap P1 EAITofmit)
  366.              WH  (angle P10 P12)
  367.              WV  (angle P11 P10)
  368.              P1  (mapcar '/ (mapcar '+ P10 P11) '(2 2 2))
  369.              WH  (EAITbig WH)
  370.              WV  (EAITbig WV)
  371.       )
  372.       (initget 6 "?")
  373.       (EAITmsg "mb_mld12" "\n" "019" " ")  ;Anzahl der Multibloecke (2,3,...,?): <?>
  374.       (setq n (getint)
  375.             LGes (distance P20 P21) )
  376.       (cond ((or (= n nil)(= n "?")) (setq n (+ 2 (fix (/ (- LGes 160) 500)))) )
  377.             ((= n 1)                 (setq n 2))
  378.       )
  379.       (setq L  (/ (- LGes 160) (float (- n 1))))
  380.       (if (< L EAITlmin)(progn (setq L nil) (EAITmsg "mb_mld12" "\n" "006" " ")(princ EAITlmin)(EAITmsg "mb_mld13" nil "006" nil)(EAITmsg "mb_mld12" " " "020" "\n")))
  381.                                ;Ungültige Eingabe: es werden min. EAITlmin mm je Multiblock benötigt!
  382.    )
  383.  
  384.    ;Schleife
  385.    (setq P1 (polar P1 (angle P10 P12) (- 80 L) )
  386.          nx nil)
  387.    (repeat n
  388.       (setq P1 (polar P1 (EAITgib WH) L))
  389.       (if (not nx)
  390.           (progn (setq nx 1)
  391.           (if (/= (cdr (assoc 2 (entget (car NL)))) nil) (command EAITurs P0) )
  392.           ))
  393.       (command EAITzom EAITzof  (mapcar '- P1 '(50 50 0)) (mapcar '+ P1 '(100 100 0)))
  394.       (if (/= (ssget (polar P1 (EAITgib WV) 4)) nil)
  395.  
  396.            (command EAITbru (polar P1 (EAITgib WV) 4) EAITbre (polar (polar P1 (EAITgib WH) 10) (EAITgib WV) 4) (polar (polar P1 (EAITgib WH) -10) (EAITgib WV) 4))
  397.  
  398.       )
  399.       (if (/= (ssget (polar P1 (EAITgib WV) -4)) nil)
  400.            
  401.            (command EAITbru (polar P1 (EAITgib WV) -4) EAITbre (polar (polar P1 (EAITgib WH) 10) (EAITgib WV) -4) (polar (polar P1 (EAITgib WH) -10) (EAITgib WV) -4))
  402.  
  403.       )
  404.       (command EAITzom EAITzov )
  405.       (if (= nx 1)
  406.          (progn
  407.          (setq nx 0)
  408.          (cond ((= X 5)(setq P3 (polar (polar P1 (EAITgib WV) 5) (EAITgib WH) -10)
  409.                              P4 (polar P3 (EAITgib WH) 20)
  410.                              P5 (polar P4 (EAITgib (+ WV 180)) 25)
  411.                              P6 (polar P5 (EAITgib (+ WH 180)) 20)
  412.                              P7 (polar P6 (EAITgib WV) 5)
  413.                              P8 (polar P7 (EAITgib WH) 20) ))
  414.               ((= X 10)(setq P3 (polar (polar P1 (EAITgib WV) 10) (EAITgib WH) -10)
  415.                              P4 (polar P3 (EAITgib WH) 20)
  416.                              P5 (polar P4 (EAITgib (+ WV 180)) 25)
  417.                              P6 (polar P5 (EAITgib (+ WH 180)) 20)
  418.                              P7 (polar P3 (EAITgib WV) -5)
  419.                              P8 (polar P7 (EAITgib WH) 20) ))
  420.               ((= X 15)(setq P3 (polar (polar P1 (EAITgib WV) 15) (EAITgib WH) -10)
  421.                              P4 (polar P3 (EAITgib WH) 20)
  422.                              P5 (polar P4 (EAITgib (+ WV 180)) 25)
  423.                              P6 (polar P5 (EAITgib (+ WH 180)) 20)
  424.                              P7 (polar P6 (EAITgib WV) 5)
  425.                              P8 (polar P7 (EAITgib WH) 20) ))
  426.               (T       (setq P3 (polar (polar P1 (EAITgib WV) 20) (EAITgib WH) -10)
  427.                              P4 (polar P3 (EAITgib WH) 20)
  428.                              P5 (polar P4 (EAITgib (+ WV 180)) 25)
  429.                              P6 (polar P5 (EAITgib (+ WH 180)) 20)
  430.                              P7 (polar P3 (EAITgib WV) -5)
  431.                              P8 (polar P7 (EAITgib WH) 20) ))
  432.          )
  433.          (command EAITlay EAITlse "EAIT50" ""
  434.                   EAITlin P3 P4 "")
  435.          (setq E1 (entlast))
  436.          (command EAITlin P4 P5 P6 P3 ""
  437.                   EAITlin P7 P8 ""
  438.                   EAITlay EAITlse "EAITstp" ""
  439.                   EAITlin (polar (polar P3 (EAITgib WH) 10) (EAITgib WV) 5) (polar (polar P6 (EAITgib WH) 10) (EAITgib (+ WV 180)) 5) ""
  440.          )
  441.          (setq SS1 (EAITSS E1))
  442.          (setq BName (EAITbnr))
  443.          (command EAITblo BName P1 SS1 ""
  444.                   EAITege BName P1 "" "" "")
  445.          (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib WH) 2.5) "" "" WH
  446.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  447.          )
  448.          )
  449.          (progn
  450.             (command EAITege BName P1 "" "" ""
  451.                      EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib WH) 2.5) "" "" WH
  452.                              EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  453.             )
  454.          )
  455.       )
  456.    )
  457.    (EAITvarz2)
  458.    (princ)
  459. );defun V2
  460.  
  461.  
  462.  
  463. (defun C:41958D1 (/ P1 S)
  464.    (EAITDBL "0041958")
  465.    (princ (strcat "\n\n" EAITbez1))
  466.    (EAITvari)
  467.    (EAITvars)
  468.    (setvar "ORTHOMODE" 0)
  469.    (EAITbpt EAITofnaec 512 nil)
  470.    (setq P1 (getpoint))
  471.    (if (= P1 nil)(setq P1 (EAITrpt)))
  472.    (setvar "ORTHOMODE" 1)
  473.    (setvar "OSMODE" 0)
  474.  
  475.    (initget (strcat (EAITmg "mb_mld13" "008") " " (EAITmg "mb_mld13" "009")))
  476.    (EAITmsg "mb_mld12" "\n" "021" " ")(EAITmsg "mb_mld13" nil "008" "/<")(EAITmsg "mb_mld13" nil "009" ">")
  477.                          ;Vollstaendige Darstellung der Multiblöcke ?  Ja/<Nein>
  478.    (setq s (getreal))
  479.    (if (= s (EAITmg "mb_mld13" "008"))(setq s (strcat EAITpfn "41958d1"))(setq s (strcat EAITpfn "41958d2")))
  480.  
  481.    (EAITmsg "mb_mld10" nil "003" nil)            ;Drehwinkel
  482.    (command EAITege S  P1 "" "" EAITofkei pause)
  483.  
  484.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITbw) 2.5) "" "" (EAITbig (EAITbw))
  485.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  486.    )
  487.  
  488.    (EAITvarz2)
  489.    (princ)
  490. );defun D1
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497. (defun C:41958D2 (/ L P10 P11 W WH n LGes nx P0 s s1)
  498.    (EAITDBL "0041958")
  499.    (princ (strcat "\n\n" EAITbez1))
  500.    (EAITvari)
  501.    (EAITvars)
  502.  
  503.    ;Lage + Anzahl
  504.    (setq L nil)
  505.    (while (not L)
  506.       (setvar "ORTHOMODE" 0)
  507.       (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "017"))  ;  1. Punkt:
  508.       (setq P10 (getpoint))
  509.       (if (= P10 nil)(setq P10 (EAITrpt)))
  510.       (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "018"))  ;  2. Punkt:
  511.       (setq P11 (getpoint P10))
  512.       (if (= P11 nil)(setq P11 (EAITrpt)))
  513.       (setvar "ORTHOMODE" 0)
  514.       (setvar "OSMODE" 0)
  515.       (setq W  (angle P11 P10)
  516.             WH (+ (EAITbig W) 90)
  517.       )
  518.  
  519.       (initget 6 "?")
  520.       (EAITmsg "mb_mld12" "\n" "019" " ")  ;Anzahl der Multibloecke (2,3,...,?): <?>
  521.       (setq n (getint))
  522.       (setq LGes (distance P10 P11))
  523.       (cond ((or (= n nil)(= n "?")) (setq n (+ 2 (fix (/ (- LGes 160) 500)))) )
  524.             ((= n 1)                 (setq n 2))
  525.       )
  526.       (setq L  (/ (- LGes 160) (float (- n 1))))
  527.       (if (< L EAITlmin)(progn (setq L nil) (EAITmsg "mb_mld12" "\n" "006" " ")(princ EAITlmin)(EAITmsg "mb_mld13" nil "006" nil)(EAITmsg "mb_mld12" " " "020" "\n")))
  528.                                ;Ungültige Eingabe: es werden min. EAITlmin mm je Multiblock benötigt!
  529.    )
  530.  
  531.  
  532.    (initget (strcat (EAITmg "mb_mld13" "008") " " (EAITmg "mb_mld13" "009")))
  533.    (EAITmsg "mb_mld12" "\n" "021" " ")(EAITmsg "mb_mld13" nil "008" "/<")(EAITmsg "mb_mld13" nil "009" ">")
  534.                          ;Vollstaendige Darstellung der Multiblöcke ?  Ja/<Nein>
  535.    (setq s (getreal))
  536.    (if (= s (EAITmg "mb_mld13" "008"))(setq s1 (strcat EAITpfn "41958d1"))(setq s1 (strcat EAITpfn "41958d2")))
  537.  
  538.    ;1. Einfügen
  539.    (setq nx nil
  540.          P0 (polar P11 W (- 80 L)) )
  541.    (repeat n
  542.       (setq P0 (polar P0 W L))
  543.       (command EAITege s1 P0 "" "" WH
  544.  
  545.                EAITege (strcat EAITpfn "EAITinfo") (polar P0 (EAITbw) 2.5) "" "" ""
  546.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  547.       )
  548.    )
  549.  
  550.    (EAITvarz2)
  551.    (princ)
  552. );defun D2
  553. (princ)
  554.